package com.sugon.modules.sparepart.service;

import com.sugon.entity.SparePartRequEntity;
import com.sugon.entity.vo.SparePartsNeedsPlanCommitEaParam;
import com.sugon.modules.base.service.IErmsBaseApproveManager;
import com.sugon.modules.sparepart.model.vo.CommonApproveParamVO;
import com.sugon.modules.sparepart.model.vo.SparePartRequDetailVO;

/**
 * @author ： YuXD
 * @description： 备件需求计划manager
 * @date ： 2023-02-21
 * @version: 1.0
 */
public interface ISparepartNeedsPlanManager extends IErmsBaseApproveManager {

    /**
     * 提交备件需求计划进行审核
     * 1、修改计划状态信息
     * 2、发送审批消息
     *
     * @param commitEaParam 提交审批的参数
     * @return
     */
    boolean commitApprove(SparePartsNeedsPlanCommitEaParam commitEaParam);

    /**
     * 取消备件需求计划审核
     * @param materialBase
     * @return
     */
    boolean cancel(SparePartRequEntity materialBase);

    /**
     * 审核领料或者完成当前节点任务
     *
     * @param approveParam
     * @return 返回重定向的地址
     */
    String check(CommonApproveParamVO approveParam);

    /**
     * 取消备件需求计划在途数
     *
     * @param sparePartRequDetail 备件需求计划条目详情
     * @return
     */
    boolean cancelTransit(SparePartRequDetailVO sparePartRequDetail);

    /**
     * 减少备件计划在途数
     * 如果是的话需要，修改需求中的在途和入库数，并更新备件的在途数
     *
     * @param sparePartNeedsDetailId 备件需求计划明细项ID
     * @param num                    数目
     * @return
     */
    boolean reduceTransitNum(String sparePartNeedsDetailId, int num);

}
